// Mountain.cs using System.Data; using System.Data.SqlClient; using System.Runtime.CompilerServices; using System.EnterpriseServices; using System.Reflection; using Database; //Registration details. //COM+ application name as it appears in the COM+ catalog. [assembly: ApplicationName("Mountain")] [assembly: ApplicationActivation(ActivationOption.Library)] //Strong name for assembly. [assembly: AssemblyKeyFileAttribute("components/Mountain.snk")] [assembly: AssemblyVersion("1.0.0.0")] namespace Mountain { [Transaction(TransactionOption.Required)] public class Mountain : ServicedComponent { // is "holdlock" necessary/useful ? private static string select = "select mountain_id," + "mountain_name," + "location," + "king_id," + "dwarf_name as king_name " + "from mountain holdlock, dwarf " + "where king_id *= dwarf_id"; [AutoComplete] public DataSet GetAll(){ Database.Database db = new Database.Database(); return db.RunSql(select); } [AutoComplete] public DataSet Get(int id){ Database.Database db = new Database.Database(); SqlParameter[] prams = { Database.Database.MakeParam("@id", SqlDbType.Int, id) }; string lselect = select + " and mountain_id = @id"; return db.RunSql(lselect,prams); } [AutoComplete] // returns mountain_id public int Add( string mountain_name, string location, int king_id) { Database.Database db = new Database.Database(); SqlParameter[] prams = { Database.Database.MakeParam("@mountain_name", SqlDbType.VarChar, mountain_name), Database.Database.MakeParam("@location", SqlDbType.VarChar, location), Database.Database.MakeParam("@king_id", SqlDbType.Int, king_id,true), }; db.RunSql( "insert into mountain (mountain_name,location,king_id) " + "values (@mountain_name,@location,@king_id)", prams); SqlParameter[] prams2 = { Database.Database.MakeParam("@mountain_name", SqlDbType.VarChar, mountain_name), }; DataSet ds = db.RunSql( "select mountain_id from mountain where mountain_name = @mountain_name", prams2); return System.Int32.Parse(ds.Tables[0].Rows[0]["mountain_id"].ToString()); } [AutoComplete] public void Update(int mountain_id, string mountain_name, string location, int king_id) { Database.Database db = new Database.Database(); SqlParameter[] prams = { Database.Database.MakeParam("@mountain_id", SqlDbType.Int, mountain_id), Database.Database.MakeParam("@mountain_name", SqlDbType.VarChar, mountain_name), Database.Database.MakeParam("@location", SqlDbType.VarChar, location), Database.Database.MakeParam("@king_id", SqlDbType.Int, king_id,true), }; db.RunSql( "update mountain set mountain_name = @mountain_name,"+ "location = @location," + "king_id = @king_id " + "where mountain_id = @mountain_id", prams); } } }